/**
 * @param {string} text1
 * @param {string} text2
 * @return {number}
 */
 var longestCommonSubsequence = function(text1, text2) { // 动态规划 最大子串=前上面的子串+1    ||  max（左边，上面） 
    let length1=text1.length+1,length2=text2.length+1;
    let arr=new Array(length1).fill(0);
    arr=arr.map(arr=>new Array(length2).fill(0));
    for(let i=1;i<length1;i++){
        let ch1=text1.charAt(i-1);
        for(let j=1;j<length2;j++){
            let ch2=text2.charAt(j-1);
            if(ch1==ch2){
                arr[i][j]=arr[i-1][j-1]+1;
            }
            else{
                arr[i][j] = Math.max(arr[i][j-1],arr[i-1][j]);
            }
        }
    }
    return arr[length1-1][length2-1];
};